Class
#categories!
Unclassified!
accessing!
loading type info!
typechecking! !
rename:to:!
165289!
Unclassified!
0Symbol:Symbol:! !
typeInfoInstanceVariables:!
173621!
Unclassified!
0Str:! !
superclassTypeString!
171135!
Unclassified!
0Str! !
changeMethod:to:!
121619!
Unclassified!
0MethodDecl:MethodDecl:! !
typecheckTypeArguments!
190256!
typechecking!
0! !
convert:toGeneric:ifFail:!
131411!
Unclassified!
0Mirror:GenericMirror:[Str]:! !
vmInvocations!
175913!
Unclassified!
0OrdCltn[ClassVMMirror]! !
createTypeStructureForObject!
182636!
loading type info!
0! !
typeArgumentString!
171912!
Unclassified!
0Str! !
compiledMethodAt:ifFail:!
128593!
Unclassified!
2Symbol:[^X def]:Method|X! !
formatFor:mixinFormat:formats:ifFail:!
134165!
Unclassified!
0ClassVMMirror:Symbol:VarDict[Class,Symbol]:[Str,^DoesNotMatter]:Symbol! !
convert:ifFail:!
131216!
Unclassified!
0Mirror:[Str]:! !
typeInfoAddInstanceVariable:!
172848!
Unclassified!
0VarDecl:! !
convertToGenericMixin:ifFail:!
131664!
Unclassified!
0GenericMirror:[Str]:! !
compileMethod:ifFail:!
127995!
Unclassified!
0DeltaMethod:[Str]:Method! !
subtype!
170105!
Unclassified!
0Boolean! !
scope:!
168657!
Unclassified!
0Scope:! !
heir:checkSelector:withSignature:!
137543!
Unclassified!
0Decl:Symbol:MsgSignature:! !
formatsOf:mixinFormat:ifFail:!
135369!
Unclassified!
0Cltn[Class]:Symbol:[Str,^DoesNotMatter]:VarDict[Class,Symbol]! !
makeChange:ifFail:!
147790!
Unclassified!
0[MixinVMMirror,^MixinVMMirror]:[Str]:! !
insertMethod:visibility:category:ifFail:!
140739!
Unclassified!
0Str:Symbol:Symbol:[Str]:ParseTree! !
instanceVariableAt:ifAbsent:!
143065!
Unclassified!
0Symbol:[]:! !
branded:!
118979!
Unclassified!
0Boolean:! !
isMeta!
146208!
Unclassified!
0Boolean! !
typecheckSuperclassClause!
189893!
typechecking!
0! !
typecheckInstVars!
188163!
typechecking!
0! !
cloneConformingToShape:!
126608!
Unclassified!
0ClassMirror:MixinVMMirror! !
comment:!
127834!
Unclassified!
0Str:! !
prepareInvocation2:mixinFormat:oldClasses:newClasses:ifFail:!
155024!
Unclassified!
0Class:Symbol:OrderedCollection[Class]:OrderedCollection[ClassMirror]:[Str,^DoesNotMatter]:Array[Class|Symbol]! !
isSubtype!
146364!
Unclassified!
0Boolean! !
prepareInvocation:mixinFormat:oldClasses:newClasses:ifFail:!
156780!
Unclassified!
0Class:Symbol:OrderedCollection[Class]:OrderedCollection[ClassMirror]:[Str,^DoesNotMatter]:Array[Class|Symbol]! !
nonSubtypeHeir:checkSelector:withSignature:!
150967!
Unclassified!
0Decl:Symbol:MsgSignature:! !
removeInstanceVariable:ifAbsent:!
163562!
Unclassified!
0Symbol:[]:! !
classVariableAt:ifAbsent:!
124509!
Unclassified!
0Symbol:[]:VarDecl! !
removePool:ifAbsent:!
165105!
Unclassified!
0Str:[]:! !
subtype:!
170262!
Unclassified!
0Boolean:! !
convertToMixin:changingClass:to:ifFail:!
131961!
Unclassified!
0MixinDeclMirror:ClassMirror:ClassMirror:[Str,^DoesNotMatter]:! !
updateDependenciesFrom:to:!
175170!
Unclassified!
0::! !
setName:ifFail:!
169455!
Unclassified!
0Symbol:[Str]:! !
extensionsAreNotSubtypes!
133551!
Unclassified!
0! !
nameExisting:ifFail:!
150070!
Unclassified!
0Symbol:[Str]:! !
notSubtype!
152769!
Unclassified!
0! !
removeClassVariable:ifFail:!
162925!
Unclassified!
0Symbol:[Str]:! !
addClassVariable:ifFail:!
115053!
Unclassified!
0VarDecl:[Str]:! !
instanceVariablesDo:!
144896!
Unclassified!
0[VarDecl]:! !
changeInstanceVariablesTo:!
120705!
Unclassified!
0Cltn[VarDecl]:! !
typecheckSelectorInterface:!
189200!
typechecking!
0Symbol:! !
superclassType!
170455!
Unclassified!
0ClassNode! !
conformBodyTypeTo:!
129896!
Unclassified!
0ClassMirror:! !
#group!
reflection! !
heirScope!
139319!
Unclassified!
0Scope! !
compiledMethodsDo:!
128830!
Unclassified!
0[Method]:! !
parseMethod:ifFail:!
153840!
Unclassified!
0Str:[Str,Int]:ParseTree[DeltaMethod]! !
typeInfo!
172401!
Unclassified!
0SideUpdate! !
abstract!
114719!
Unclassified!
0! !
loadMsgSelector:!
185486!
loading type info!
0Symbol:DeltaMethod! !
methodAt:ifFail:!
148988!
Unclassified!
2Symbol:[^X def]:DeltaMethod|X! !
conform:toShape:!
129009!
Unclassified!
0MixinVMMirror:ClassMirror:MixinVMMirror! !
removeClassVariable:ifAbsent:!
162387!
Unclassified!
0Symbol:[]:! !
createTypeStructure!
178126!
loading type info!
0! !
install:ifFail:!
142396!
Unclassified!
0MixinVMMirror:[Str,^DoesNotMatter]:MixinDeclMirror! !
typeNameForNode:inMethod:!
174657!
Unclassified!
0ASTNode:Method:String! !
masterInvocation:ifFail:!
148443!
Unclassified!
0Class:[Str]:! !
noteFilteredSendersOf:!
152913!
Unclassified!
0Symbol:! !
removeDefinitionIfFail:!
163277!
Unclassified!
0[]:! !
reflectee:!
161080!
Unclassified!
0Mixin:! !
convertToMixin:ifFail:!
133124!
Unclassified!
0MixinDeclMirror:[Str]:! !
compileMethod:within:ifFail:!
128241!
Unclassified!
0DeltaMethod:ClassVMMirror|MixinVMMirror:[Str]:Method! !
sourceForSelector:!
169670!
Unclassified!
0Symbol:Str! !
body!
117802!
Unclassified!
0ClassMirror! !
heirsCheckSelector:withSignature:!
139630!
Unclassified!
0Symbol:MsgSignature:! !
changePoolsTo:!
122310!
Unclassified!
0Cltn[Str]:! !
combinedFormatOfMixin:andSuperclass:ifFail:!
126965!
Unclassified!
0Mixin:Class:[Str,^DoesNotMatter]:Symbol! !
mixinDecl!
149713!
Unclassified!
0MixinVMMirror! !
changeToMixin:oldClasses:newClasses:ifFail:!
122499!
Unclassified!
0MixinVMMirror:OrderedCollection[Class]:OrderedCollection[ClassMirror]:[Str,^DoesNotMatter]:MixinDeclMirror! !
recompileAllMethodsIfFail:!
159104!
Unclassified!
0[]:! !
recompileMethod:ifFail:!
159354!
Unclassified!
0Symbol:[]:! !
reflect:!
160357!
Unclassified!
0MixinVMMirror:! !
classVariablesDo:!
126330!
Unclassified!
0[VarDecl]:! !
typeInfoRemoveInstanceVariable:!
174450!
Unclassified!
0Symbol:! !
scope!
168503!
Unclassified!
0Scope! !
invocations!
145597!
Unclassified!
0Cltn[AbstractClassMirror]! !
#subtype!
true! !
methodsDo:!
149261!
Unclassified!
0[DeltaMethod]:! !
typecheckSelector:!
188498!
typechecking!
0Symbol:! !
addMethod:to:!
116016!
Unclassified!
0DeltaMethod:ClassVMMirror:! !
addPool:ifFail:!
117105!
Unclassified!
0Str:[Str]:! !
nonSubtypeHeirsCheckSelector:withSignature:!
152236!
Unclassified!
0Symbol:MsgSignature:! !
#abstract!
false! !
addInstanceVariable:ifFail:!
115441!
Unclassified!
0VarDecl:[Str]:! !
typeInfoAddClassVariable:!
172582!
Unclassified!
0VarDecl:! !
addMethod:visibility:category:ifFail:!
116494!
Unclassified!
0Str:Symbol:Symbol:[Str]:ParseTree! !
isAbstract!
145849!
Unclassified!
0Boolean! !
addInvocation:!
115759!
Unclassified!
0Class:! !
abstract:!
114861!
Unclassified!
0Boolean:! !
typecheckSupportedProtocol!
190073!
typechecking!
0! !
mixinDecl:!
149866!
Unclassified!
0MixinVMMirror:! !
instanceVariableString!
143386!
Unclassified!
0Str! !
selectorsFor:!
168813!
Unclassified!
0Str:OrdCltn[Symbol]! !
body:!
118753!
Unclassified!
0ClassMirror:! !
typecheckInterface!
188333!
typechecking!
0! !
extensionsAreSubtypes:!
133932!
Unclassified!
0Boolean:! !
createMethodTypeStructure!
177359!
loading type info!
0! !
classVariableString!
124837!
Unclassified!
0Str! !
classVariables:!
125149!
Unclassified!
0Str:! !
changeClassVariablesTo:!
119167!
Unclassified!
0Cltn[VarDecl]:! !
protocols:!
158740!
Unclassified!
0Str:! !
comment!
127678!
Unclassified!
0Str! !
#branded!
true! !
poolString!
154573!
Unclassified!
0Str! !
uninstall!
175021!
Unclassified!
0! !
nameNew:ifFail:!
150368!
Unclassified!
0Symbol:[Str]:! !
pools:!
154733!
Unclassified!
0Str:! !
superclassType:!
170630!
Unclassified!
0Str:! !
immediateHeirs!
140106!
Unclassified!
0OrdCltn[ClassMirror]! !
#revision!
$Revision: 1.23 $! !
invocationInfo!
145345!
Unclassified!
0AbstractInvocationData! !
referencesToAssociation:!
159884!
Unclassified!
0Association:Cltn[MethodLocator]! !
isBranded!
146026!
Unclassified!
0Boolean! !
#classVariableString!
InvocationInfo <VarDict[Mixin, AbstractInvocationData]>! !
basicDefinitionString!
117285!
Unclassified!
0Str! !
supportedProtocol:!
171317!
Unclassified!
0Str:! !
basicLocator!
117625!
Unclassified!
0BasicMixinLocator! !
removeMethod:ifAbsent:!
164013!
Unclassified!
0Symbol:[]:! !
komment!
146546!
Unclassified!
0! !
combinedFormatOfMixinFormat:andSuperclassFormat:ifFail:!
127270!
Unclassified!
0Symbol:Symbol:[Str,^DoesNotMatter]:Symbol! !
extensionsAreSubtypes!
133724!
Unclassified!
0Boolean! !
nestInGenericWithTypeArguments:!
150704!
Unclassified!
0Str:! !
typecheckClassVars!
187818!
typechecking!
0! !
#comment!
This class represents a mirror on a mixin declaration.

The mirror maintains an instance variable, mixinDecl, which is a low level mirror
(a MixinVMMirror) on the actual mixin. Changes are accomplished by forwarding
to this low level mirror. The actual mixin being reflected is also available thru mixinDecl.

Changes to the structure of the mixin are accomplished by creating an uninstalled copy
of the mixin, and performing the changes on it, and the installing the changes atomically
using the changed copy as a constructor which is passed to the VM. The VM also receives
a list of all invocations and their dependent subclasses, so that it can modify them atomically
at the same time.

This process is done using the makeChange:ifFail: method, which in turn invokes the
install:ifFail: method.

Methods are simply added to the mixin, and copied down to invocations. This is not done atomically
at this point.

 (c) 1995-1997 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 
Use and distribution of this software is subject to the terms of the attached source license.! !
hasFullTypeInfoLoaded!
185272!
loading type info!
0Boolean! !
handleInterfaceChangeFrom:to:!
135969!
Unclassified!
0MethodDecl:MethodDecl:! !
selectorsMatching:!
169007!
Unclassified!
0Str:Set[Symbol]! !
initializeSuperclassType:body:!
140502!
Unclassified!
0::! !
masterInvocation!
148268!
Unclassified!
0Class! !
renameGroup:!
166922!
Unclassified!
0Dict[Symbol,Symbol]:! !
typeInfoClassVariables:!
173053!
Unclassified!
0Str:! !
removeAllClassVariables!
161243!
Unclassified!
0! !
typecheck!
187080!
typechecking!
0! !
hasSelector:!
137245!
Unclassified!
0Symbol:Boolean! !
removeAllInstanceVariables!
161810!
Unclassified!
0! !
typeForNode:inMethod:!
172184!
Unclassified!
0ASTNode:Method:ObjectType! !
classProtocols:!
124334!
Unclassified!
0Str:! !
conformToShape:!
130663!
Unclassified!
0ClassMirror:! !
typeInfoRemoveClassVariable:!
174182!
Unclassified!
0Symbol:! !
#extensionsAreSubtypes!
true! !
unbranded!
174878!
Unclassified!
0! !
methodsFor:!
149519!
Unclassified!
0String:! !
typecheckDeclaration!
187994!
typechecking!
0! !
#superclassTypeString!
MixinMirror! !
#instanceVariableString!
mixinDecl sourceInfo ! !
publicMethodsFor:!
158900!
Unclassified!
0String:! !
shortDescription!
176814!
accessing!
0Str! !
privateMethodsFor:!
158535!
Unclassified!
0String:! !
localScope!
147600!
Unclassified!
0Scope! !
installed!
142824!
Unclassified!
0Boolean! !
reflectee!
160862!
Unclassified!
0Mixin! !
instanceVariables:!
143572!
Unclassified!
0Str:! !
supportedProtocolString!
171724!
Unclassified!
0Str! !
sourceInfo!
169867!
Unclassified!
0MixinSourceHandler! !
|>!
176160!
Unclassified!
0ClassMirror:ClassMirror! !
loadSelector:!
186277!
loading type info!
0Symbol:DeltaMethod! !
install!
142251!
Unclassified!
0! !
